Room association based on name

ABSTRACT

Systems and methods for use in a media playback system comprising one or more playback devices are disclosed, where a playback device has a corresponding first set of device attributes used by a first controller application. The methods include: (i) identifying a second set of device attributes used by a second controller application to control the playback device, (ii) selecting a second device attribute for the playback device from the second set of device attributes based at least in part on a first device attribute; (iii) storing the selected second device attribute in the first set of device attributes; and (iv) controlling at least one function of the playback device using the selected second device attribute.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional App. No.62/409,358 titled “Music Session Interface,” filed on Oct. 17, 2016. Theentire contents of the 62/409,358 application are incorporated herein byreference. The present application additionally incorporates herein byreference the entire contents of (i) U.S. application Ser. No.13/656,050, filed Oct. 19, 2012, titled “Systems And Methods ForWireless Music Playback”; (ii) U.S. application Ser. No. 11/853,790,filed Sep. 11, 2007, titled “Controlling And Manipulating Groupings In AMulti-Zone Media System”; (iii) U.S. application Ser. No. 12/035,112,filed Sep. 11, 2007, titled “Method And Apparatus For ControllingMultimedia Players In A Multi-Zone System”; (iv) U.S. application Ser.No. 13/892,230, filed Sep. 11, 2007, titled “Method And Apparatus ForControlling Multimedia Players In A Multi-Zone System”; (v) U.S.application Ser. No. 14/737,199, filed Jun. 11, 2015, titled “Method AndApparatus For Controlling Multimedia Players In A Multi-Zone System.”;(vi) U.S. application Ser. No. 14/300,564, filed May 22, 2015, titled“Providing Media Items From Playback History”; and U.S. application Ser.No. 13/338,724, filed Dec. 28, 2011, titled “Methods And Systems ToSelect An Audio Track.”

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tomethods, systems, products, features, services, and other elementsdirected to media playback or some aspect thereof.

BACKGROUND

Options for accessing and listening to digital audio in an out-loudsetting were limited until in 2003, when SONOS, Inc. filed for one ofits first patent applications, entitled “Method for Synchronizing AudioPlayback between Multiple Networked Devices,” and began offering a mediaplayback system for sale in 2005. The Sonos Wireless HiFi System enablespeople to experience music from many sources via one or more networkedplayback devices. Through a software controller application installed ona phone, tablet, or computer, one can play what he or she wants in anyroom that has a networked playback device. Additionally, using thecontroller, for example, different songs can be streamed to each roomwith a playback device, rooms can be grouped together for synchronousplayback, or the same song can be heard in all rooms synchronously.

Given the ever growing interest in digital media, there continues to bea need to develop consumer-accessible technologies to further enhancethe listening experience.

SUMMARY

The present application discloses systems and methods for use in a mediaplayback system comprising one or more playback devices, where aplayback device has a corresponding first set of device attributes. Insome embodiments, the first set of device attributes are used by a firstcontroller application to control one or more of the playback devices inthe media playback system. In some embodiments, the first set of deviceattributes are used by a cloud server (or other computing device orsystem) to control one or more of the playback devices in the mediaplayback system. In still further embodiments, the first set of deviceattributes are used by an application programming interface (API)associated with one or more of a controller application and/or a cloudcomputing server (or other computing device or system) to control one ormore playback devices of the media playback system.

In some embodiments, the systems and methods include: (i) identifying asecond set of device attributes associated with the playback device,(ii) selecting a second device attribute for the playback device fromthe second set of device attributes based at least in part on a firstdevice attribute; (iii) storing the selected second device attribute inthe first set of device attributes; and (iv) controlling at least onefunction of the playback device using the selected second deviceattribute. In some embodiments, one or more attributes of the second setof device attributes are used by a second controller application tocontrol one or more playback devices of the media playback system. Insome embodiments, the second set of device attributes are used by acloud server (or other computing device or system) to control one ormore of the playback devices in the media playback system. In stillfurther embodiments, the second set of device attributes are used by anapplication programming interface (API) associated with one or more of acontroller application and/or a cloud computing server (or othercomputing device or system) to control one or more playback devices ofthe media playback system.

In some embodiments, the first device attribute comprises one of or moreof (i) a player name for the playback device, (ii) a player type of theplayback device, (ii) a player icon for the playback device, (iii) aplayer configuration for the playback device, (iv) a zone name for azone associated with the playback device (e.g., the “downstairs zone” or“bedroom zone”), (v) a session name for a session associated with theplayback device, (v) a room name associated with the playback device(e.g., a room (for example, “John's bedroom”) where the playback deviceis located), (vi) a room type associated with the playback device (e.g.,a type of room (for example, “bedroom”) where the playback device islocated), (vii) an area name associated with the playback device (e.g.,an area where the playback device is located, for example, “downstairs”or “patio”). In some embodiments, the second set of device attributescomprises one of or more of (i) a player name for the playback device,(ii) a player type of the playback device, (ii) a player icon for theplayback device, (iii) a player configuration for the playback device,(iv) a zone name for a zone associated with the playback device (e.g.,the “downstairs zone” or “bedroom zone”), (v) a session name for asession associated with the playback device, (v) a room name associatedwith the playback device (e.g., a room (for example, “John's bedroom”)where the playback device is located), (vi) a room type associated withthe playback device (e.g., a type of room (for example, “bedroom”) wherethe playback device is located), (vii) an area name associated with theplayback device (e.g., an area where the playback device is located, forexample, “downstairs”, “patio”, or “downstairs+patio”). The first andsecond sets of device attributes could include fewer, additional, and/ordifferent attributes than the ones listed above.

In some example embodiments, selecting a second device attribute basedat least in part on the first device attribute comprises selecting atleast one attribute from the second set of attributes based on at leastone attribute from the first set of attributes. Some examples includeselecting at least one of a room type identifier from the set of roomtype identifiers, room name identifier from the set of room identifiers,an area name identifier from the set of area identifiers, and/or a zonename identifier from the set of zone identifiers based at least in parton one or more of the player name, the player type, the player icon, theplayer configuration, the zone name for a zone associated with theplayback device, and the session name for a session associated with theplayback device. In operation, any one or more attributes from thesecond set of attributes can be selected for an individual playbackdevice or group of playback devices based on any one or more attributesfrom the first set of attributes.

In still further embodiments, the first set of attributes and the secondset of attributes may both be used by a single controller application.For example, the first set of attributes may include player names, andthe second set of attributes may include room names, area names, zonenames, and/or other attributes. In such embodiments, the controllerapplication selects a second attribute based at least in part on a firstattribute. In some examples, the controller application selects a roomname for a playback device based on a player name of the playbackdevice. In other examples, the controller application selects a roomname and an area name for a playback device based at least in part onthe player name and player type. As mentioned previously, any one ormore attributes from the second set of attributes can be selected for anindividual playback device or group of playback devices based on any oneor more attributes from the first set of attributes

These and other aspects of the disclosed systems and methods are shownand described in more detail herein with reference to the accompanyingfigures.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings where:

FIG. 1 shows an example media playback system configuration in whichcertain embodiments may be practiced;

FIG. 2 shows a functional block diagram of an example playback device;

FIG. 3 shows a functional block diagram of an example control device;

FIG. 4 shows an example controller interface;

FIG. 5 shows an example flow diagram to facilitate a music session usinga control device;

FIG. 6 shows an example control device;

FIGS. 7A-F show a control device that is displaying an example controlinterface, according to an example implementation;

FIG. 8 shows a control device that is displaying another example controlinterface, according to an example implementation;

FIGS. 9A-E show a control device that is displaying another examplecontrol interface, according to an example implementation;

FIGS. 10A-F show a control device that is displaying yet another examplecontrol interface, according to an example implementation;

FIG. 11 shows example techniques to navigate from one interface toanother, according to an example implementation;

FIGS. 12A-12D show example operations to create a new music session,according to an example implementation; and

FIGS. 13A-13D show example operations to modify zone selection for amusic session, according to an example implementation.

FIG. 14 shows an example method for controlling a media playback deviceaccording to some embodiments.

The drawings are for the purpose of illustrating example embodiments,but it is understood that the inventions are not limited to thearrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

In an example use case of a media playback system, a user may selectmedia (e.g., an album, playlist, individual track(s), among otherexamples) for playback on the media playback system, perhaps using acontrol device (e.g., a mobile computing device or tablet). Some mediaplayback systems may include multiple playback devices, which may playback media individually or as a group (possibly synchronously, withoutaudible echoes or glitches). In some implementations, a media playbacksystem may include multiple listening “zones” that include respectiveplayback devices.

A “session” may describe an instance of a particular set of media (e.g.,an album, a playlist, or set of queued media items) being played back ona particular set of playback devices (e.g., on a playback device ofparticular listening zone or by a group of listening zones), perhapsaccording to one or more particular settings. Example implementationsdescribed herein may facilitate creating new sessions, selecting apre-existing session, modifying a listening zone associated with asession, or changing a playback setting (e.g., play, pause, next track,previous track, playback volume, and EQ settings, among others)associated with a session.

Some implementations described herein may involve, inter alia, a controldevice (e.g., a mobile computing device or tablet computer) displayingone or more graphical interfaces to facilitate a music session. Inaddition to media item(s) for playback, a music session may, forexample, include volume control settings, equalization settings,playback control settings, room or zone settings, and the like. Thecontrol device may display such music sessions in a manner that maysimplify and improve listening experience.

In some implementations contemplated herein, the control device maycause a graphical display to display one or more interfaces to preparefor a music session. Such interfaces may include various graphicalelements such as text, icons, and the like to indicate informationrelated to music sessions and/or for creating and modifying musicsessions.

In some examples, the control device may cause the graphical display todisplay a “home screen” interface. The home screen interface mayinclude, for example, a selectable control to create a new musicsession, a first region to select an active session (e.g., a sessionthat is currently being used), and a second region to select a recentsession (possibly from among several recent sessions).

In other examples, the control device may cause the graphical display todisplay a “music browsing” interface. The music browsing interface mayinclude, for example, a search tool to facilitate search for aparticular artist, song, album, playlist, station, genre, composer,podcast, and the like, which may be used to select media for playback(e.g., in a given session). Additionally, the music browsing interfacemay include a browsing tool to search for a particular song from one ormore audio sources. Audio sources may include one or more media serviceproviders (e.g., Pandora® Radio, Spotify®, Slacker®, Radio, GooglePlay™, iTunes Radio), as well as local and/or remote audio sources thatmay be within the control device, or within any other device describedherein.

In other examples contemplated herein, the control device may cause thegraphical display to display one or more interfaces for a selected musicsession. For example, the control device may cause the graphical displayto display a “now playing” interface. The now playing interface mayinclude graphical elements corresponding to an audio track being played,one or more playback controls, and an indictor to modify one or morezones (e.g., living room, bathroom), or zone scenes or “areas” (e.g.,downstairs, upstairs, basement, possibly including multiple zones).

In further embodiments contemplated herein, the control device may causethe graphical display to display one or more interfaces to select one ormore zones or zone scenes to play back audio in synchrony with one ormore selected listening zones or zone scenes. For example, the controldevice may cause the graphical display to display a “rooms controller”interface. The rooms controller interface may include graphical elementscorresponding to an audio track being played, and one or more indicatorscorresponding to a particular zone or zone scene.

In one aspect, a method is provided to cause the graphical display todisplay the above interfaces. In another aspect, a device is provided.The device includes a network interface, at least one processor, datastorage, and program logic stored in the data storage and executable bythe at least one processor to perform operations. The operations mayinclude displaying (i) one or more interfaces to prepare for a musicsession, (ii) one or more interfaces for the selected music session, and(iii) one or more interfaces to select one or more zones or zone scenes.

In yet another aspect, tangible, non-transitory computer readable mediais provided. The tangible, non-transitory computer readable media hasstored thereon instructions executable by a control device to cause thecontrol device to perform operations described above.

It will be understood by one of ordinary skill in the art that thisdisclosure includes numerous other embodiments. While some examplesdescribed herein may refer to functions performed by given actors suchas “users” and/or other entities, it should be understood that thisdescription is for purposes of explanation only. The claims should notbe interpreted to require action by any such example actor unlessexplicitly required by the language of the claims themselves.

II. Example Operating Environment

FIG. 1 illustrates an example configuration of a media playback system100 in which one or more embodiments disclosed herein may be practicedor implemented. The media playback system 100 as shown is associatedwith an example home environment having several rooms and spaces, suchas for example, a master bedroom, an office, a dining room, and a livingroom. As shown in the example of FIG. 1, the media playback system 100includes playback devices 102-124, control devices 126 and 128, and awired or wireless network router 130.

Further discussions relating to the different components of the examplemedia playback system 100 and how the different components may interactto provide a user with a media experience may be found in the followingsections. While discussions herein may generally refer to the examplemedia playback system 100, technologies described herein are not limitedto applications within, among other things, the home environment asshown in FIG. 1. For instance, the technologies described herein may beuseful in environments where multi-zone audio may be desired, such as,for example, a commercial setting like a restaurant, mall or airport, avehicle like a sports utility vehicle (SUV), bus or car, a ship or boat,an airplane, and so on.

a. Example Playback Devices

FIG. 2 shows a functional block diagram of an example playback device200 that may be configured to be one or more of the playback devices102-124 of the media playback system 100 of FIG. 1. The playback device200 may include a processor 202, software components 204, memory 206,audio processing components 208, audio amplifier(s) 210, speaker(s) 212,and a network interface 214 including wireless interface(s) 216 andwired interface(s) 218. In one case, the playback device 200 may notinclude the speaker(s) 212, but rather a speaker interface forconnecting the playback device 200 to external speakers. In anothercase, the playback device 200 may include neither the speaker(s) 212 northe audio amplifier(s) 210, but rather an audio interface for connectingthe playback device 200 to an external audio amplifier or audio-visualreceiver.

In one example, the processor 202 may be a clock-driven computingcomponent configured to process input data according to instructionsstored in the memory 206. The memory 206 may be a tangiblecomputer-readable medium configured to store instructions executable bythe processor 202. For instance, the memory 206 may be data storage thatcan be loaded with one or more of the software components 204 executableby the processor 202 to achieve certain functions. In one example, thefunctions may involve the playback device 200 retrieving audio data froman audio source or another playback device. In another example, thefunctions may involve the playback device 200 sending audio data toanother device or playback device on a network. In yet another example,the functions may involve pairing of the playback device 200 with one ormore playback devices to create a multi-channel audio environment.

Certain functions may involve the playback device 200 synchronizingplayback of audio content with one or more other playback devices.During synchronous playback, a listener will preferably not be able toperceive time-delay differences between playback of the audio content bythe playback device 200 and the one or more other playback devices. U.S.Pat. No. 8,234,395 entitled, “System and method for synchronizingoperations among a plurality of independently clocked digital dataprocessing devices,” which is hereby incorporated by reference, providesin more detail some examples for audio playback synchronization amongplayback devices.

The memory 206 may further be configured to store data associated withthe playback device 200, such as one or more zones and/or zone groupsthe playback device 200 is a part of, audio sources accessible by theplayback device 200, or a playback queue that the playback device 200(or some other playback device) may be associated with. The data may bestored as one or more state variables that are periodically updated andused to describe the state of the playback device 200. The memory 206may also include the data associated with the state of the other devicesof the media system, and shared from time to time among the devices sothat one or more of the devices have the most recent data associatedwith the system. Other embodiments are also possible.

The audio processing components 208 may include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor (DSP), and soon. In one embodiment, one or more of the audio processing components208 may be a subcomponent of the processor 202. In one example, audiocontent may be processed and/or intentionally altered by the audioprocessing components 208 to produce audio signals. The produced audiosignals may then be provided to the audio amplifier(s) 210 foramplification and playback through speaker(s) 212. Particularly, theaudio amplifier(s) 210 may include devices configured to amplify audiosignals to a level for driving one or more of the speakers 212. Thespeaker(s) 212 may include an individual transducer (e.g., a “driver”)or a complete speaker system involving an enclosure with one or moredrivers. A particular driver of the speaker(s) 212 may include, forexample, a subwoofer (e.g., for low frequencies), a mid-range driver(e.g., for middle frequencies), and/or a tweeter (e.g., for highfrequencies). In some cases, each transducer in the one or more speakers212 may be driven by an individual corresponding audio amplifier of theaudio amplifier(s) 210. In addition to producing analog signals forplayback by the playback device 200, the audio processing components 208may be configured to process audio content to be sent to one or moreother playback devices for playback.

Audio content to be processed and/or played back by the playback device200 may be received from an external source, such as via an audioline-in input connection (e.g., an auto-detecting 3.5 mm audio line-inconnection) or the network interface 214.

The network interface 214 may be configured to facilitate a data flowbetween the playback device 200 and one or more other devices on a datanetwork. As such, the playback device 200 may be configured to receiveaudio content over the data network from one or more other playbackdevices in communication with the playback device 200, network deviceswithin a local area network, or audio content sources over a wide areanetwork such as the Internet. In one example, the audio content andother signals transmitted and received by the playback device 200 may betransmitted in the form of digital packet data containing an InternetProtocol (IP)-based source address and IP-based destination addresses.In such a case, the network interface 214 may be configured to parse thedigital packet data such that the data destined for the playback device200 is properly received and processed by the playback device 200.

As shown, the network interface 214 may include wireless interface(s)216 and wired interface(s) 218. The wireless interface(s) 216 mayprovide network interface functions for the playback device 200 towirelessly communicate with other devices (e.g., other playbackdevice(s), speaker(s), receiver(s), network device(s), control device(s)within a data network the playback device 200 is associated with) inaccordance with a communication protocol (e.g., any wireless standardincluding IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4Gmobile communication standard, and so on). The wired interface(s) 218may provide network interface functions for the playback device 200 tocommunicate over a wired connection with other devices in accordancewith a communication protocol (e.g., IEEE 802.3). While the networkinterface 214 shown in FIG. 2 includes both wireless interface(s) 216and wired interface(s) 218, the network interface 214 may in someembodiments include only wireless interface(s) or only wiredinterface(s).

In one example, the playback device 200 and one other playback devicemay be paired to play two separate audio components of audio content.For instance, playback device 200 may be configured to play a leftchannel audio component, while the other playback device may beconfigured to play a right channel audio component, thereby producing orenhancing a stereo effect of the audio content. The paired playbackdevices (also referred to as “bonded playback devices”) may further playaudio content in synchrony with other playback devices.

In another example, the playback device 200 may be sonicallyconsolidated with one or more other playback devices to form a single,consolidated playback device. A consolidated playback device may beconfigured to process and reproduce sound differently than anunconsolidated playback device or playback devices that are paired,because a consolidated playback device may have additional speakerdrivers through which audio content may be rendered. For instance, ifthe playback device 200 is a playback device designed to render lowfrequency range audio content (i.e. a subwoofer), the playback device200 may be consolidated with a playback device designed to render fullfrequency range audio content. In such a case, the full frequency rangeplayback device, when consolidated with the low frequency playbackdevice 200, may be configured to render only the mid and high frequencycomponents of audio content, while the low frequency range playbackdevice 200 renders the low frequency component of the audio content. Theconsolidated playback device may further be paired with a singleplayback device or yet another consolidated playback device.

By way of illustration, SONOS, Inc. presently offers (or has offered)for sale certain playback devices including a “PLAY:1,” “PLAY:3,”“PLAY:5,” “PLAYBAR,” “CONNECT:AMP,” “CONNECT,” and “SUB.” Any otherpast, present, and/or future playback devices may additionally oralternatively be used to implement the playback devices of exampleembodiments disclosed herein. Additionally, it is understood that aplayback device is not limited to the example illustrated in FIG. 2 orto the SONOS product offerings. For example, a playback device mayinclude a wired or wireless headphone. In another example, a playbackdevice may include or interact with a docking station for personalmobile media playback devices. In yet another example, a playback devicemay be integral to another device or component such as a television, alighting fixture, or some other device for indoor or outdoor use.

b. Example Playback Zone Configurations

Referring back to the media playback system 100 of FIG. 1, theenvironment may have one or more playback zones, each with one or moreplayback devices. The media playback system 100 may be established withone or more playback zones, after which one or more zones may be added,or removed to arrive at the example configuration shown in FIG. 1. Eachzone may be given a name according to a different room or space such asan office, bathroom, master bedroom, bedroom, kitchen, dining room,living room, and/or balcony. In one case, a single playback zone mayinclude multiple rooms or spaces. In another case, a single room orspace may include multiple playback zones.

As shown in FIG. 1, the balcony, dining room, kitchen, bathroom, office,and bedroom zones each have one playback device, while the living roomand master bedroom zones each have multiple playback devices. In theliving room zone, playback devices 104, 106, 108, and 110 may beconfigured to play audio content in synchrony as individual playbackdevices, as one or more bonded playback devices, as one or moreconsolidated playback devices, or any combination thereof. Similarly, inthe case of the master bedroom, playback devices 122 and 124 may beconfigured to play audio content in synchrony as individual playbackdevices, as a bonded playback device, or as a consolidated playbackdevice.

In one example, one or more playback zones in the environment of FIG. 1may each be playing different audio content. For instance, the user maybe grilling in the balcony zone and listening to hip hop music beingplayed by the playback device 102 while another user may be preparingfood in the kitchen zone and listening to classical music being playedby the playback device 114. In another example, a playback zone may playthe same audio content in synchrony with another playback zone. Forinstance, the user may be in the office zone where the playback device118 is playing the same rock music that is being playing by playbackdevice 102 in the balcony zone. In such a case, playback devices 102 and118 may be playing the rock music in synchrony such that the user mayseamlessly (or at least substantially seamlessly) enjoy the audiocontent that is being played out-loud while moving between differentplayback zones. Synchronization among playback zones may be achieved ina manner similar to that of synchronization among playback devices, asdescribed in previously referenced U.S. Pat. No. 8,234,395.

As suggested above, the zone configurations of the media playback system100 may be dynamically modified, and in some embodiments, the mediaplayback system 100 supports numerous configurations. For instance, if auser physically moves one or more playback devices to or from a zone,the media playback system 100 may be reconfigured to accommodate thechange(s). For instance, if the user physically moves the playbackdevice 102 from the balcony zone to the office zone, the office zone maynow include both the playback device 118 and the playback device 102.The playback device 102 may be paired or grouped with the office zoneand/or renamed if so desired via a control device such as the controldevices 126 and 128. On the other hand, if the one or more playbackdevices are moved to a particular area in the home environment that isnot already a playback zone, a new playback zone may be created for theparticular area.

Further, different playback zones of the media playback system 100 maybe dynamically combined into zone groups or split up into individualplayback zones. For instance, the dining room zone and the kitchen zone114 may be combined into a zone group for a dinner party such thatplayback devices 112 and 114 may render audio content in synchrony. Onthe other hand, the living room zone may be split into a television zoneincluding playback device 104, and a listening zone including playbackdevices 106, 108, and 110, if the user wishes to listen to music in theliving room space while another user wishes to watch television.

c. Example Control Devices

FIG. 3 shows a functional block diagram of an example control device 300that may be configured to be one or both of the control devices 126 and128 of the media playback system 100. Control device 300 may also bereferred to as a controller 300. As shown, the control device 300 mayinclude a processor 302, memory 304, a network interface 306, and a userinterface 308. In one example, the control device 300 may be a dedicatedcontroller for the media playback system 100. In another example, thecontrol device 300 may be a network device on which media playbacksystem controller application software may be installed, such as forexample, an iPhone™, iPad™ or any other mobile computing device, tabletor network device (e.g., a networked computer such as a PC or Mac™).

The processor 302 may be configured to perform functions relevant tofacilitating user access, control, and configuration of the mediaplayback system 100. The memory 304 may be configured to storeinstructions executable by the processor 302 to perform those functions.The memory 304 may also be configured to store the media playback systemcontroller application software and other data associated with the mediaplayback system 100 and the user.

In one example, the network interface 306 may be based on an industrystandard (e.g., infrared, radio, wired standards including IEEE 802.3,wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.15, 4G mobile communication standard, and so on). Thenetwork interface 306 may provide a means for the control device 300 tocommunicate with other devices in the media playback system 100. In oneexample, data representing information (e.g., a state variable) may becommunicated between control device 300 and other devices via thenetwork interface 306. For instance, playback zone and zone groupconfigurations in the media playback system 100 may be received by thecontrol device 300 from a playback device or another network device, ortransmitted by the control device 300 to another playback device ornetwork device via the network interface 306. In some cases, the othernetwork device may be another control device.

Playback device control commands such as volume control and audioplayback control may also be communicated from the control device 300 toa playback device via the network interface 306. As suggested above,changes to configurations of the media playback system 100 may also beperformed by a user using the control device 300. The configurationchanges may include adding/removing one or more playback devices to/froma zone, adding/removing one or more zones to/from a zone group, forminga bonded or consolidated player, separating one or more playback devicesfrom a bonded or consolidated player, among others. Accordingly, thecontrol device 300 may sometimes be referred to as a controller, whetherthe control device 300 is a dedicated controller or a network device onwhich media playback system controller application software isinstalled.

The user interface 308 of the control device 300 may be configured tofacilitate user access and control of the media playback system 100, byproviding a controller interface such as the controller interface 400shown in FIG. 4. The controller interface 400 includes a playbackcontrol region 410, a playback zone region 420, a playback status region430, a playback queue region 440, and an audio content sources region450. The user interface 400 as shown is just one example of a userinterface that may be provided on a network device such as the controldevice 300 of FIG. 3 (and/or the control devices 126 and 128 of FIG. 1)and accessed by users to control a media playback system such as themedia playback system 100. Other user interfaces of varying formats,styles, and interactive sequences may alternatively be implemented onone or more network devices to provide comparable control access to amedia playback system.

The playback control region 410 may include selectable (e.g., by way oftouch or by using a cursor) icons to cause playback devices in aselected playback zone or zone group to play or pause, fast forward,rewind, skip to next, skip to previous, enter/exit shuffle mode,enter/exit repeat mode, enter/exit cross fade mode. The playback controlregion 410 may also include selectable icons to modify equalizationsettings, and playback volume, among other possibilities.

The playback zone region 420 may include representations of playbackzones within the media playback system 100. In some embodiments, thegraphical representations of playback zones may be selectable to bringup additional selectable icons to manage or configure the playback zonesin the media playback system, such as a creation of bonded zones,creation of zone groups, separation of zone groups, and renaming of zonegroups, among other possibilities.

For example, as shown, a “group” icon may be provided within each of thegraphical representations of playback zones. The “group” icon providedwithin a graphical representation of a particular zone may be selectableto bring up options to select one or more other zones in the mediaplayback system to be grouped with the particular zone. Once grouped,playback devices in the zones that have been grouped with the particularzone will be configured to play audio content in synchrony with theplayback device(s) in the particular zone. Analogously, a “group” iconmay be provided within a graphical representation of a zone group. Inthis case, the “group” icon may be selectable to bring up options todeselect one or more zones in the zone group to be removed from the zonegroup. Other interactions and implementations for grouping andungrouping zones via a user interface such as the user interface 400 arealso possible. The representations of playback zones in the playbackzone region 420 may be dynamically updated as playback zone or zonegroup configurations are modified.

The playback status region 430 may include graphical representations ofaudio content that is presently being played, previously played, orscheduled to play next in the selected playback zone or zone group. Theselected playback zone or zone group may be visually distinguished onthe user interface, such as within the playback zone region 420 and/orthe playback status region 430. The graphical representations mayinclude track title, artist name, album name, album year, track length,and other relevant information that may be useful for the user to knowwhen controlling the media playback system via the user interface 400.

The playback queue region 440 may include graphical representations ofaudio content in a playback queue associated with the selected playbackzone or zone group. In some embodiments, each playback zone or zonegroup may be associated with a playback queue containing informationcorresponding to zero or more audio items for playback by the playbackzone or zone group. For instance, each audio item in the playback queuemay comprise a uniform resource identifier (URI), a uniform resourcelocator (URL) or some other identifier that may be used by a playbackdevice in the playback zone or zone group to find and/or retrieve theaudio item from a local audio content source or a networked audiocontent source, possibly for playback by the playback device.

In one example, a playlist may be added to a playback queue, in whichcase information corresponding to each audio item in the playlist may beadded to the playback queue. In another example, audio items in aplayback queue may be saved as a playlist. In a further example, aplayback queue may be empty, or populated but “not in use” when theplayback zone or zone group is playing continuously streaming audiocontent, such as Internet radio that may continue to play untilotherwise stopped, rather than discrete audio items that have playbackdurations. In an alternative embodiment, a playback queue can includeInternet radio and/or other streaming audio content items and be “inuse” when the playback zone or zone group is playing those items. Otherexamples are also possible.

When playback zones or zone groups are “grouped” or “ungrouped,”playback queues associated with the affected playback zones or zonegroups may be cleared or re-associated. For example, if a first playbackzone including a first playback queue is grouped with a second playbackzone including a second playback queue, the established zone group mayhave an associated playback queue that is initially empty, that containsaudio items from the first playback queue (such as if the secondplayback zone was added to the first playback zone), that contains audioitems from the second playback queue (such as if the first playback zonewas added to the second playback zone), or a combination of audio itemsfrom both the first and second playback queues. Subsequently, if theestablished zone group is ungrouped, the resulting first playback zonemay be re-associated with the previous first playback queue, or beassociated with a new playback queue that is empty or contains audioitems from the playback queue associated with the established zone groupbefore the established zone group was ungrouped. Similarly, theresulting second playback zone may be re-associated with the previoussecond playback queue, or be associated with a new playback queue thatis empty, or contains audio items from the playback queue associatedwith the established zone group before the established zone group wasungrouped. Other examples are also possible.

Referring back to the user interface 400 of FIG. 4, the graphicalrepresentations of audio content in the playback queue region 440 mayinclude track titles, artist names, track lengths, and other relevantinformation associated with the audio content in the playback queue. Inone example, graphical representations of audio content may beselectable to bring up additional selectable icons to manage and/ormanipulate the playback queue and/or audio content represented in theplayback queue. For instance, a represented audio content may be removedfrom the playback queue, moved to a different position within theplayback queue, or selected to be played immediately, or after anycurrently playing audio content, among other possibilities. A playbackqueue associated with a playback zone or zone group may be stored in amemory on one or more playback devices in the playback zone or zonegroup, on a playback device that is not in the playback zone or zonegroup, and/or some other designated device. Playback of such a playbackqueue may involve one or more playback devices playing back media itemsof the queue, perhaps in sequential or random order.

The audio content sources region 450 may include graphicalrepresentations of selectable audio content sources from which audiocontent may be retrieved and played by the selected playback zone orzone group. Discussions pertaining to audio content sources may be foundin the following section.

d. Example Audio Content Sources

As indicated previously, one or more playback devices in a zone or zonegroup may be configured to retrieve for playback audio content (e.g.,according to a corresponding URI or URL for the audio content) from avariety of available audio content sources. In one example, audiocontent may be retrieved by a playback device directly from acorresponding audio content source (e.g., a line-in connection). Inanother example, audio content may be provided to a playback device overa network via one or more other playback devices or network devices.

Example audio content sources may include a memory of one or moreplayback devices in a media playback system such as the media playbacksystem 100 of FIG. 1, local music libraries on one or more networkdevices (such as a control device, a network-enabled personal computer,or a networked-attached storage (NAS), for example), streaming audioservices providing audio content via the Internet (e.g., the cloud), oraudio sources connected to the media playback system via a line-in inputconnection on a playback device or network devise, among otherpossibilities.

In some embodiments, audio content sources may be regularly added orremoved from a media playback system such as the media playback system100 of FIG. 1. In one example, an indexing of audio items may beperformed whenever one or more audio content sources are added, removedor updated. Indexing of audio items may involve scanning foridentifiable audio items in all folders/directory shared over a networkaccessible by playback devices in the media playback system, andgenerating or updating an audio content database containing metadata(e.g., title, artist, album, track length, among others) and otherassociated information, such as a URI or URL for each identifiable audioitem found. Other examples for managing and maintaining audio contentsources may also be possible.

e. Example Networked Devices

In some embodiments, a networked microphone device (NMD) that iscommunicatively coupled to the playback device 200 or other deviceswithin the media playback system may be configured to provide an audioplayback experience based on voice control. In one example, one or morecomputing devices may be devices configured primarily for audiodetection. In another example, one or more of the NMDs may be componentsof devices having various primary utilities. For instance, as discussedabove in connection to FIGS. 2 and 3, one or more of NMDs may be themicrophone(s) 220 of playback device 200 or the microphone(s) 310 ofnetwork device 300. Further, in some cases, one or more of NMDs may bethe playback device 200 or network device 300.

In operation, a given NMD may be configured to receive voice inputs tocontrol a playback device, such as playback device 200. The availablecontrol commands may include any media playback system controlspreviously discussed, such as playback volume control, playbacktransport controls, music source selection, and grouping, among otherpossibilities. In one instance, a given NMD may receive a voice input tocontrol one or more playback devices. In response to receiving the voiceinput, the given NMD may transmit, via a network interface, the voiceinput to the media playback system for processing.

For instance, if the text command is “Play ‘Track 1’ by ‘Artist 1’ from‘Streaming Service 1’ in ‘Zone 1’,” The media playback system mayidentify (i) a URL for “Track 1” by “Artist 1” available from “StreamingService 1,” and (ii) at least one playback device in “Zone 1.” Uponidentifying the URL and one or more playback devices, the media playbacksystem to the one or more playback devices, the identified URL forplayback. One or both playback devices may responsively retrieve audiocontent according to the received URL, and begin playing “Track 1” by“Artist 1” from “Streaming Service 1.”

III. Example Techniques to Facilitate Music Sessions

As noted above, techniques described herein may facilitate musicsessions. FIG. 5 illustrates an example implementation 500 to use acontrol device to facilitate music sessions by causing a graphicaldisplay to display one or more interfaces.

Implementation 500 shown in FIG. 5 present embodiments that can beimplemented within an operating environment including, for example, themedia playback system 100 of FIG. 1, one or more of the playback device200 of FIG. 2, or one or more of the control device 300 of FIG. 3.Further, operations illustrated by way of example as being performed bya media playback system can be performed by any suitable device, such asa playback device or a control device of a media playback system.Implementation 500 may include one or more operations, functions, oractions as illustrated by one or more of blocks shown in FIG. 5.Although the blocks are illustrated in sequential order, these blocksmay also be performed in parallel, and/or in a different order thanthose described herein. Also, the various blocks may be combined intofewer blocks, divided into additional blocks, and/or removed based uponthe desired implementation.

In addition, for the implementations disclosed herein, the flowchartsshow functionality and operation of one possible implementation ofpresent embodiments. In this regard, each block may represent a module,a segment, or a portion of program code, which includes one or moreinstructions executable by a processor for implementing specific logicalfunctions or steps in the process. The program code may be stored on anytype of computer readable medium, for example, such as a storage deviceincluding a disk or hard drive. The computer readable medium may includenon-transitory computer readable medium, for example, such ascomputer-readable media that stores data for short periods of time likeregister memory, processor cache, and Random Access Memory (RAM). Thecomputer readable medium may also include non-transitory media, such assecondary or persistent long term storage, like read only memory (ROM),optical or magnetic disks, compact-disc read only memory (CD-ROM), forexample. The computer readable media may also be any other volatile ornon-volatile storage systems. The computer readable medium may beconsidered a computer readable storage medium, for example, or atangible storage device. In addition, for the implementations disclosedherein, each block may represent circuitry that is wired to perform thespecific logical functions in the process.

a. Display Interface(s) to Prepare for Music Session

At block 502, implementation 500 involves displaying one or moreinterfaces to prepare for a music session. For instance, a controldevice, such as control device 126 of media playback system 100, maycause a graphical display to display an interface (e.g., controlinterface 400 of FIG. 4), that includes one or more interfaces toprepare for the music session.

As noted above, a music session may, for example, define one or moremedia items (e.g., artist, album, genre, title, etc.), volume controlsettings, equalization settings, playback control settings, room or zonesettings, and the like during the session. The control device, one ormore playback devices (e.g., playback device 200), or the media playbacksystem may store one or more music sessions, including one or more ofthe settings or information described above.

FIG. 6 depicts an example control device 600 (e.g., a mobile computingdevice) that includes one or more processors, a tangiblecomputer-readable memory, a network interface, and a display. Controldevice 600 might be an example implementation of control device 126 or128 of FIG. 1, or control device 300 of FIG. 3, or other control devicesdescribed herein. By way of example, reference will be made to controldevice 600 and certain control interfaces, prompts, and other graphicalelements that control device 600 may display. Within examples, suchinterfaces and elements may be displayed via any suitable controldevice, such as a mobile computing device, tablet computer, laptop ordesktop computer, personal media player, or a remote control device.

FIG. 7A-F, and FIG. 8 illustrate example control interfaces to preparefor a music session. In FIG. 7A, control device 600 displays an examplecontrol interface 700, which includes a new session indicator 706, firstdisplay region 702, and a second display region 704. FIG. 7B illustratesan example embodiment of control interface 700 in FIG. 7A. FIGS. 7C, 7D,7E, and 7F illustrate other example embodiments of control interface 700in FIG. 7A. Control interface 700 may be referred to as the “homescreen” interface. FIG. 8 illustrates an example music browsinginterface by which media for playback during a session may be searchedor browsed.

Referring to FIG. 7A, the first display region 702 includes graphicalelements representing one or more music sessions that are currentlyactive in one or more or zones in a household. Additionally, firstdisplay region 702 may include graphical elements corresponding to theaudio track(s) that are currently being played in respective musicsessions. For instance, as shown, first display region 702 displays amusic session that is currently active in the living room. First displayregion 702 also includes the song title and artist name of the audiotrack that is currently being playing in the living room music session.Alternative display regions contemplated herein may include additionalor fewer items of metadata corresponding to the media being played backin the active music session.

In some instances, active sessions of a media playback system mayinclude one or more sessions from one or more accounts corresponding tothe media playback system within the household. Users of a mediaplayback system (e.g., members of a household) may correlate respectiveaccounts of the media playback system with control devices. Forinstance, a given user may register their user account with theirpersonal mobile computing device (e.g., tablet, and/or laptop). Sessionscreated via these devices may be associated with that user's account.Some control devices may be shared (e.g., a family desktop computer)and, as such, the user account associated with that control device maydepend upon which user is logged onto that control device at any givenmoment. A display region, such as display region 702, may includegraphical elements indicating user account(s) that created the activesession and/or are participating in that session (e.g., by viewingand/or modifying the session).

In FIG. 7A, example second display region 704 includes graphicalelements representing one or more recent music sessions 708. Recentmusic sessions may include, for example, one or more prior musicsessions corresponding to a given account corresponding to the controldevice and the media playback system within the household. For instance,a control device registered to a given user account may display in sucha display region recent sessions that the user of the control devicecreated or participated in. In some instances, the one or more recentmusic sessions 708 may include one or more saved music sessionscorresponding to some or all accounts corresponding to the mediaplayback system within the household. Additionally, the one or morerecent music sessions may include music sessions affirmatively “saved”for later access by the user of the control device. Further, the one ormore recent music sessions 708 may include music sessions suggested orrecommended by a third party, such as a particular media serviceprovider or other users, among other examples. In some instances, seconddisplay region 704 may be divided into multiple regions to categorizethe one or more recent music sessions described above. For instance, afirst region may display prior music sessions engaged in by the user ofthe control device, a second region may display saved music sessionsaffirmatively saved by the user, a third region may display prior musicsessions created by other users of the media playback system, a fourthregion may display music sessions recommended by a third party, and soon.

The one or more recent music sessions in the second display region 704may be arranged in a particular order. For instance, the music sessionsmay be arranged by the most frequently selected music session, the mostrecently selected music session, by genre, by artist, by name of themusic session, among other examples. In some instances, a particularmusic session may be moved (e.g., via dragging and dropping) in front ofor behind another music session to rearrange the order in which themusic sessions are displayed.

As noted above, control interface 700 also includes new sessionindicator 706. Upon selection of new session indicator 706, the controldevice may cause the graphical display to display another controlinterface to facilitate creation of a new session. For instance, thecontrol device may cause the graphical display to display examplecontrol interface 800 in FIG. 8. Control interface 800 may be referredto as the “music browsing” interface and may facilitate selection ofmedia items for the new session. In some instances, however, the controldevice may cause the graphical display to display control interface 800before control interface 700.

As shown in FIG. 8, control interface 800 includes search tool 802 andbrowsing tool 804. Search tool 802 may be utilized to search for aparticular artist, song, album, playlist, station, genre, composer,podcast, and the like. Browsing tool 804 may be utilized to select aparticular song or media content from a given audio source among audiosources available to the media playback system. Example audio sourcesmay include one or more media service providers (e.g., Apple Music®,Spotify®, Soundcloud®, TuneIn Radio® and the like), as well as local andremote audio sources within the control device or any other devicedescribed herein. In some instances, upon input of a search string(e.g., artist name), the display region corresponding to browsing tool804 may be updated to display the search results and respective mediasources corresponding to the search results.

b. Display Interface(s) for Selected Music Session

Referring back to FIG. 5, at block 504, implementation 500 involvesdisplaying one or more interfaces for a selected music session. Forinstance, a control device, such as control device 126 of media playbacksystem 100, may cause a graphical display to display an interface (e.g.,control interface 400 of FIG. 4), that includes one or more interfacesfor the selected music session.

In some instances, the control device may cause the graphical display todisplay one or more interfaces for the selected music session uponselection of an indicator (e.g., a selectable control) within controlinterface 700. For example, upon selection of one of the active sessionsin the first display region 702, the control device may cause thegraphical display to display one or more interfaces for the selectedactive music session. In another example, upon selection of one of therecent sessions in the second display region 704, the control device maycause the graphical display to display one or more interfaces for theselected recent music session.

Additionally or alternatively, the control device may cause thegraphical display to display one or more interfaces for a new musicsession upon selection of an indicator within the control interface 800.For example, upon selection of a particular audio content searched forvia the search tool 802 and/or browsing tool 804, the control device maycause the graphical display to display one or more interfaces for a newmusic session.

In other instances, the control device may cause the graphical displayto display one or more interfaces for the selected music session uponinitiation of the application, possibly without selection of anindicator or other control within control interfaces 700 and 800. Forexample, upon launching the application to listen to music, the controldevice (or any other device within the media playback system) may selecta prior music session and the control device may cause the graphicaldisplay to display the selected music session, possibly without furtherinput from the user to select that music session. Within examples, thecontrol device may select a prior music session that was most recentlyselected or is most frequently selected. In further examples, thecontrol device may select a prior music session that is most frequentlyselected at a particular time of day or month.

In another example, upon launching the application to listen to music,the control device may select an active music session within thehousehold and the control device may cause the graphical display todisplay the selected music session, possibly without further input fromthe user to select that music session. In example operations, thecontrol device may select an active music session corresponding to thekitchen upon detecting (via one or more sensors) that the control deviceis located in the kitchen. Alternatively, the control device may selectan ongoing active music session corresponding to the kitchen uponrelaunch of the application in response to determining that such musicsession was previously selected before relaunch of the application.

FIG. 9A, FIG. 9B, FIG. 10A, and FIG. 10B illustrate example controlinterfaces for a selected music session. In FIG. 9A, control device 600displays an example control interface 900, which includes a playbackcontrol region 902, zone control region 904, and a volume control region906. Control interface 900 also includes a save session icon 908, a homescreen icon 910, and a music browsing icon 912. FIG. 9B illustrates anexample embodiment of control interface 900 in FIG. 9A. FIGS. 9C, 9D,and 9E illustrate other example embodiments of control interface 900 inFIG. 9A. Control interface 900 may be referred to as a “now playing”interface as this interface includes graphical elements and/or regionsindicating the currently playing media of an active session as well ascontrols for modifying the active session.

Playback control region 902 may include graphical elements correspondingto the audio track that is currently being played within the selectedmusic session. For instance, as shown, playback control region 902includes the album cover, song title, and artist corresponding to theaudio track currently being played within the selected music session.Playback control region 902 also includes playback controls to pause thecurrent audio track, play the next or previous audio track, add theaudio track to a playlist or playback queue, and view a playlist orplayback queue. Example embodiments may include different sets oftransport controls.

An example zone control region 904 may include an indication of the zoneor zone scene selected to play back audio tracks within the musicsession. The selected zone or zone scene of the active session maycorrespond to one or more physical playback devices (e.g., one or morerespective playback devices per listening zone). As shown, zone controlregion 904 includes an indication that the current track within themusic session (as shown in playback control region 902) is being playedeither (i) by a single playback device downstairs or (ii) in synchronyvia two or more playback devices downstairs. Zone control region 904includes a drop down icon 914 that may be selected to modify thelistening zone(s) or zone scene of the active session. In someinstances, selection of the zone scene name (“Downstairs”) may allow auser to modify the name of the listening zone or zone scene.

Volume control region 906 includes a volume slider to control or modifyvolume of the selected zone or zone scene of the active session. Inoperation, changes to the volume level of the volume slider cause thecontrol device to instruct the playback device(s) of the selectedlistening zone or zone scenes to adjust its/their respective volumelevels. In one example, smartphone 600 transmits instructions via itsnetwork interfaces to the playback devices of the selected zone or zonescene, and each playback device of the selected zone or zone sceneadjusts its volume in response to receiving the instructions. In anotherexample, smartphone 600 directly controls the volume levels of eachplayback device of the selected zone or zone scene.

In some instances, when an area is selected (e.g., downstairs), playbacksettings of the playback devices in respective rooms of the area may bemodified based on heuristics, common usage statistics, and/or contextualinformation associated with respective playback devices in an area orrespective playback devices in a given room within the area.

For example, the media playback system may learn user preferences, suchas volume level, for respective playback devices based on heuristics andcommon usage statistics. Within examples, the media playback system maylearn that a particular user generally listens to music in the kitchenat a first volume level. Based on such data, the volume level of one ormore playback devices that are physically located within the kitchen maybe modified to the first volume level upon selection of a music sessionin the kitchen. In other examples, the media playback system may learnthat a particular user generally listens to music in the kitchen at afirst volume level and in the living room at a second volume level.Based on such data, the volume level of one or more playback devicesthat are physically located within the kitchen and living room may bemodified to an average of the first and second volume level.Alternatively, the volume levels may be modified to a third volume levelbased on heuristics or common usage statistics for music sessions thatinclude the kitchen and living room as an area (e.g., downstairs).

In further examples, an upstairs level of a home may include a masterbedroom, bathroom, and a second bedroom. Respective playback devices maybe physically located within the master bedroom and bathroom, while thesecond bedroom might not include a playback device. When the upstairsarea is selected, the volume of the one or more playback devices in themaster bedroom and the bathroom may be modified to compensate for thesecond bedroom that does not include a playback device. Such volumeincrease may facilitate the sessions being audible across the entireupstairs level, including in the second bedroom. In some instances, thevolume of the one or more playback devices in the master bedroom and thebathroom is modified to a volume level corresponding to a typical volumelevel of when the upstairs area is selected for a music session.

In addition to heuristics and common usage statistics, it might bebeneficial to modify playback settings of respective playback devices insome situations based on contextual information associated with therespective playback devices in an area or respective playback devices ina given room within the area. For example, a particular user listeningto music at a first volume level via one or more playback devices thatare physically located within the living room may wish to join one ormore playback devices that are physically located within the kitchen tothe music session. Upon selection to join the kitchen to the musicsession associated with the living room, the control device may causeone or more playback devices in the kitchen to adjust its volume to anequivalent volume level of the music session (e.g., the first volumelevel). Additionally, the control device may cause one or more playbackdevices in the kitchen to presume other playback settings (e.g., mutesettings) of the one or more playback devices in the living room. Otherexamples of modifying playback settings based on heuristics, commonusage statistics, and/or contextual information are possible.

Selection of the save session icon 908 may cause the control device (orany other device or server within the media playback system) to storethe current music session. Saved music sessions may be displayed in aregion listing saved music sessions. A saved music session may beselected from such a list to re-instantiate the session.

Selection of home screen icon 910 may cause display of a home screeninterface. Control interface 700 of FIGS. 7A and 7B is an example of ahome screen interface. Other examples are possible as well.

Selection of music browsing icon 912 may cause display of a musicbrowsing interface. Control interface 800 of FIG. 8 is an example of amusic browsing interface. Other examples are contemplated as well.

c. Display Interface(s) for Zone Selection

Referring back to FIG. 5, at block 506, implementation 500 involvesdisplaying one or more interfaces for zone selection. For instance, acontrol device, such as control device 126 of media playback system 100,may cause a graphical display to display an interface (e.g., controlinterface 400 of FIG. 4), that includes one or more interfaces forselecting zones or zone scenes for a given session.

As noted above, zone control region 904 in FIG. 9A includes drop downicon 914 that may be selected to modify selection of the listening zonesor zone scene. For instance, upon selection of drop down icon 914, thecontrol device may cause the graphical display to display controlinterface 1000 in FIG. 10A and FIG. 10B to modify selection of thelistening zones or zone scene. FIGS. 10C, 10D, 10E, and 10F illustrateother example embodiments of control interface 1000 in FIG. 10A.

In FIG. 10A, control device 600 displays an example control interface1000, which includes a playback region 1002, room control region 1004,save session icon 1008, home screen icon 1010, music browsing icon 1012,room indicator 1014, and confirmation icon 1016. FIG. 10B illustrates anexample screen capture of control interface 1000 in FIG. 9B. Controlinterface 1000 may be referred to as a “room controller” interface.

Playback region 1002 includes graphical elements corresponding to theaudio track that is currently being played within the selected musicsession. For instance, as shown, playback region 1002 includes an albumcover, song title, and artist corresponding to an audio track currentlybeing played within the selected music session. Additionally playbackregion 1002 may also include playback controls (not shown) to pause thecurrent audio track, play the next or previous audio track, add theaudio track to a playlist or playback queue, and view a playlist orplayback queue, among other possibilities

Room control region 1004 includes a prompt to select one or more zonesor zone scenes to play back audio tracks within the music session insynchrony via one or more playback devices with the selected zone orzone scene. Additionally, room control region 1004 includes a list ofzones, such as living room indicator 1014, and a list of zone scenes(e.g., “Everywhere,” “Downstairs”) to select for synchronous play back,where all of the playback devices within the selected zone or zone sceneplay back the audio track(s) within the music session in synchrony witheach other. The list of zones in room control region 1004 may bedisplayed in various orders, such as alphabetical order or physicalproximity of the zone to the control device, among other examples. Insome instances, the list of zones in room control region 1004 may berearranged by, for example, dragging a particular zone indicator (e.g.living room indicator 1014) in front of or behind another zoneindicator.

In some embodiments, selection of one of the listed zone scenes in roomcontrol region 1004 causes two or more playback devices of listeningzones within the zone scene to play back audio in synchrony. Forinstance, in one example, selecting the zone scene for the first floorof a household causes two or more playback devices in the first floor(e.g., kitchen, living room, bathroom, bedroom) to play audio insynchrony with each other.

Similarly, in some embodiments, selection of one or more of the listedzones in room control region 1004 causes one or more playback deviceswithin the selected one or more zones to play back audio in synchrony.In operation, the room control region displays an indication of theselected zones. In some instances, a zone may by grayed out orhighlighted within room control region 1004 to indicate that the zonehas been selected. As shown, the Living Room indicator 1014 and Kitchenindicator are highlighted to indicate that the zones have been selected.Additionally, Living Room indicator 1014 includes a bar indication 1018to indicate that the zone has been selected for the music session.

In other instances, room control region 1004 only displays zones thatare available for selection and have not already been selected. Inoperation, upon selection of a zone listed in the room control region1004, the control device causes control interface 1000 to remove theselected zone from the list of zones listed in the room control region1004 to indicate that the zone has been selected or is no longeravailable for selection. For example, selection of Living Room indicator1014 in room control region 1004 removes the Living Room indicator 1014in room control region 1004.

Selection of the save session icon 1008 causes the control device (orperhaps one or more other devices or servers within the media playbacksystem) to store the current music session. As noted above, saved musicsessions may be displayed in a region listing saved music sessions. Asaved music session may be selected from such a list to re-instantiatethe session.

Various graphical elements of control interface 1000 may be used tonavigate between control interfaces. For instance, selection of the homescreen icon 1010 causes display of a home screen interface, such ascontrol interface 700. Similarly, selection of the music browsing icon1012 causes display of a music browsing interface, such as controlinterface 800. Other examples are possible as well.

In some embodiments, upon selection of confirmation icon 1016, thecontrol device causes the graphical display to display the now playinginterface, such as control interface 900. Alternatively, upon selectionof confirmation icon 1016, the control device may cause the graphicaldisplay to display the home screen interface (e.g., control interface700) or the music browsing interface (e.g., control interface 800). Insome instances, changes to modify the selection of zones or zone scenesvia the room control region 1004 might not be applied until selection ofconfirmation icon 1016.

In some instances, upon selection of one or more zones or zone scenes incontrol region 1004, the volume of the one or more playback devices ofthe selected zones may be normalized. In some examples, the volume ofthe one or more playback devices of the selected zones may be normalizedbased on historical listening settings for the particular music sessionand/or respective one or more playback devices of the selected zones.Within examples, if the living room and kitchen of a household areselected, the volume of one or more playback devices within the livingroom and kitchen may be normalized based on past listening volumes ofthe one or more playback devices within the living room and kitchen,respectively.

In other examples, the volume of the one or more playback devices of theselected zones may be normalized based on the most recent volumesettings of a particular zone. Within examples, the living room may havebeen initially selected as the zone to play audio for a particular musicsession. Upon selection of the kitchen to play audio in synchrony withthe living room, the one or more playback devices in the kitchen may benormalized to the volume level of the one or more playback devices inthe living room.

IV. Example Techniques to Navigate from Interface to Interface

FIG. 11 illustrates example techniques to navigate from or to controlinterface 1100, control interface 1110, control interface 1120, andcontrol interface 1130. Control interface 1100 is an example of a homescreen interface (e.g., control interface 700), control interface 1110is an example of a now playing interface (e.g., control interface 900),control interface 1120 is an example of a music browsing interface(e.g., control interface 800), and control interface 1130 is an exampleof a room controller interface (e.g., control interface 1000).

As shown, from control interface 1100, selection of the music selectionindicator 1106 (corresponding to new session indicator 706 of FIGS. 7Aand 7B) may cause display of control interface 1120 (i.e., a musicbrowsing interface). In some instances, from control interface 1100,selection of the first display region 1102 (corresponding to firstdisplay region 702) may cause display of control interface 1110 (e.g., anow playing interface).

From control interface 1110, selection of the home screen icon(corresponding to home screen icon 910 of FIGS. 9A and 9B) may causedisplay of control interface 1100 (e.g., a home screen interface). Insome instances, from control interface 1110, selection of the musicbrowsing icon (corresponding to music browsing icon 912 of FIGS. 9A and9B) may cause display of control interface 1120 (e.g., a music browsinginterface). In other instances, from control interface 1100, selectionof the drop down icon (corresponding to drop down icon 914 of FIGS. 9Aand 9B) may cause display of control interface 1130 (e.g., a roomcontroller interface).

From control interface 1120, selection of a particular audio track froma search (via the search tool or browsing tool) may cause display ofcontrol interface 1130 (e.g., a room controller interface).Alternatively, selection of the particular audio track from the search(via the search tool or browsing tool) may cause display of controlinterface 1110 (e.g., the now playing interface). In some instances,from control interface 1120, selection of a close icon (“x”), may causedisplay of control interface 1100 (e.g., a home screen interface).Alternatively, selection of the close icon (“x”), may cause display ofcontrol interface 1110 (e.g., a now playing interface).

From control interface 1130, selection of the confirmation icon(corresponding to confirmation icon 1016) may cause display of controlinterface 1110 (e.g., a now playing interface).

In example operations, a control device may receive a command to selecta particular music session from the home screen interface. In response,the control device may cause the graphical display to display theselected music session in the now playing interface. In some instances,the control device may receive a command to create a new music sessionwhile in the now playing interface. FIGS. 12A-D illustrate exampleoperations to create a new music session from control interface 1200.

As shown, control interface 1200 includes playback control region 1202(corresponding to playback control region 902 of FIGS. 9A and 9B), zonecontrol region 1204 (corresponding zone control region 904 of FIGS. 9Aand 9B), and volume control region 1206 (corresponding volume controlregion 906 of FIGS. 9A and 9B). Playback control region 1202 includes analbum cover (e.g., “1”) corresponding to an audio track for the selectedmusic session. Selection of the play icon 1212 within playback controlregion 1212 may cause display of control interface 1210 in FIG. 12B. Asshown, control interface 1210 of FIG. 12B replaces the play icon 1212 inFIG. 12A with pause icon 1214.

In order to create a new music session, the music browsing icon(corresponding to music browsing icon 912 of FIGS. 9A and 9B) may beselected. Upon selection of the music browsing icon (corresponding tomusic browsing icon 912), the control device may cause the graphicaldisplay to display control interface 1220 in FIG. 12C (e.g., a musicbrowsing interface). Control interface 1220 may be used to search forparticular audio content to create a new music session. Upon search andselection of a particular audio content, the control device may causethe graphical display to display control interface 1240 in FIG. 12D(e.g., a now playing interface). As shown, control interface 1240includes the album cover (e.g., “2”) corresponding to the selected audiocontent for the new music session.

In other example operations, a control device may receive a command toadd another zone to a currently-playing zone to play back audio insynchrony via the playback devices within the currently-playing zone andthe added zone. For instance, an individual listening to music in theliving room may decide to prepare a meal in the kitchen. The individualmay wish to add one or more playback devices in the kitchen to play backaudio in synchrony with the one or more playback devices in the livingroom for the current music session. FIGS. 13A-D illustrate exampleoperations to add zones to a session to play back audio in synchrony.

Control interface 1310 in FIG. 13A is a now playing interface, such ascontrol interface 900. As shown, control interface 1310 displays a musicsession in the living room of a household. To add one or more zoneplayers in the kitchen to the current music session, control interface1310 includes drop down icon 1314 (corresponding to drop down icon 914).Upon selection of the drop down icon 1314, the control device causes thegraphical display to display control interface 1320 in FIG. 13B. Controlinterface 1320 is a room controller interface, such as control interface1000.

From control interface 1320, an individual may select the kitchen toplay audio in synchrony with the living room for the current musicsession. Upon selection of the kitchen indicator 1322, the controldevice causes the graphical display to display control interface 1330 inFIG. 13C. Control interface 1330 is another instance of a roomcontroller interface. As shown, control interface 1330 includes barindicators (e.g., bar icon next to “Kitchen”) to indicate the selectedzones for synchronous playback. In some instances, if the household onlyhas playback devices in the kitchen and living room within the mainfloor of the household, the zone scene indicator (e.g., “Downstairs”)may be updated to indicate that all playback devices within the mainfloor have been selected.

The confirmation icon 1334 may be selected to confirm selection of thezones and play back audio in the kitchen and the living room insynchrony. Upon selection of the confirmation icon 1334, the controldevice causes the graphical display to display control interface 1340 inFIG. 13D. As shown, the zone control region is updated from “LivingRoom” in FIG. 13A to “Downstairs” to indicate that all the playbackdevices within the kitchen and living room (e.g., or all playbackdevices downstairs) area have been selected.

The following appended graphics and description provide additionaldetails and aspects to further illustrate example embodiments andfeatures described herein.

V. Assigning Attributes to Playback Devices and Playback Zones

The controller applications executed by controller devices (e.g., 126,300) for controlling playback devices (e.g., 102-124, 200) via thegraphical user interfaces (e.g., 400, 700, 800, 900, 1000, 1100, 1120,1130, 1200, 1210, 1240, 1310, 1320, 1330, 1340) disclosed and describedherein with reference to FIGS. 1-13 provide users with a feature-richand intuitive way to configure and control playback devices, includingbut not limited to grouping multiple playback devices into synchronygroups and zones, configuring and recalling zone scenes, and navigatingmusic selections and playback sessions.

In some instances, it is desirable to automatically assign attributes toplayback devices and/or groups of playback devices, e.g., synchronygroups, zone groups, zones, stereo paired players, bonded players, andother groupings of playback devices including but not limited to theplayback device groupings described herein.

In some embodiments, automatically assigning attributes to playbackdevices and/or groups of playback devices enables multiple controllerapplications (running on the same or different controller devices and/oron cloud computing systems) to control at least some functions of amedia playback system individually or in combination with other devices.For example, it may be desirable for a “smart home” controllerapplication to control the media playback system individually or incombination with other appliances and/or devices, e.g., lights, atelevision, and blinds in a home theater setting. In in one exampleembodiment, the “smart home” controller application receives a commandto activate a “home theater” mode, and in response, (i) commands thewindow shades in a media room to close, (ii) commands certain lights inthe media room to activate and/or deactivate, and perhaps set anillumination level and/or hue of the activated lights, (iii) commands atelevision or projector in the media room to awake from an idle modeand/or switch to a particular video or other media input or inputs, and(iv) command the media playback system in the media room to awake froman idle mode and/or configure one or more playback devices in the mediaplayback system in the media room for playing audio in a surround soundconfiguration. Although a “smart home” controller application is used asan example here, the systems and method disclosed and described hereinare equally applicable to other controller applications and types ofcontroller applications as well.

One challenge of controlling (or enabling control of) a media playbacksystem with a multiple controller applications as described in theexample above is dealing with inconsistent and perhaps conflictingand/or incompatible naming conventions across the multiple controllerapplications. For example, a first controller application for the mediaplayback system may use different naming conventions for playbackdevices, rooms, groups of playback devices, and so on, as compared tothe second controller application. In some instances, a user may getconfused when the same device or devices have different names or otherdifferent identifiers in different controller applications. For example,a playback device (or group of playback devices) may be designated aslocated in the “Living Room” (see, e.g., FIG. 7A) in a first controllerapplication, but this same device (or devices) may be designed aslocated in a “Theater” in a second controller application, perhapsbecause one of the first or second controller application does notsupport the “Living Room” or the “Theater” designator. The problem ofinconsistent naming is more acute in scenarios where a playback device(or group of playback devices) is designated as “John's Office” in afirst controller application, but the second controller application doesnot support customized room naming, for example.

In addition to causing confusion for a user who may access differentcontroller applications to control the same devices, the problem ofinconsistent naming of devices and rooms is compounded when using avoice control application because a voice command to, for example, playa particular song in the “Living Room” (as designated by a firstcontroller application) may not be executed properly by a voice controlapplication (a second controller application) when the voice controlapplication does not have a record of a room called a “Living Room” andinstead, has the playback device(s) of the “Living Room” associated witha room designated as “Theater.” Another problem arises when a firstcontroller application identifies a first room as the “Living Room” anda second room as the “Den” while a second controller applicationidentifies the first room as the “Theater” and the second room as the“Living Room” because commands to perform functions in the “Living Room”can cause conflicts and/or inconsistent results because two differentrooms (i.e., the first room and the second room) are both identified asthe “Living Room” in two different controller applications (i.e., thefirst controller application and the second controller application).

In some instances, this problem could be solved by the user creating anaming convention that is supported by all the different controllerapplications. But in practice, users often purchase and installdifferent systems over time, so what may have been fine for a systeminitially causes an incompatibility when a new system and/or controllerapplication is introduced later. Going back and renaming devicesmanually can be time consuming and cumbersome, particularly if a usermust rename devices and/or rooms multiple times as new devices andcontroller applications are added to a system of “smart home” devices.

One way to solve the problem of inconsistent and/or incompatible namingbetween one or more different controller applications and/or controllerdevices configured to control the same playback device (or devices), isvia a method of reconciling naming discrepancies across differentcontroller applications and/or controller platforms.

In some embodiments, a playback device of the media playback system hasa corresponding first set of device attributes used by a firstcontroller application to control the playback device. In someembodiments, the first controller application uses attributes of thefirst set of attributes to identify and/or control individual playbackdevices, groupings of playback devices, rooms, zones, and otherarrangements and/or locations of playback devices. For example, in someembodiments, the first controller application uses a “player name” or“zone name” or “zone group name” or other attribute to display a playername for a particular playback device within a graphical user interface,e.g., shown as “Living Room” in region 702 of FIG. 7D, “Downstairs” inregion 914 of FIG. 9A, and “Living Room” and “Kitchen” in region 1004 ofFIG. 10A. In some embodiments, the first controller applicationadditionally uses the attribute names to control individual playbackdevices by, for example, receiving commands via the graphical userinterface to group/un-group playback devices into/out of synchronygroups, playback media content, control volume, etc. In someembodiments, the first application additionally or alternatively usesattributes from the first set of attributes to send commands toindividual playback devices. Further, in some embodiments, after addinga selected attribute from the second set of attributes to the first setof attributes, the first application uses the selected second attributethat was added to the first set of attributes to send commands to anindividual playback device.

In operation, one or more device attributes in a second set of deviceattributes used by a second controller application to control theplayback device (or any other device or type of device) are reconciledwith one or more device attributes in the first set of device attributesused by the first controller application so that common naming for thesame devices can be used across the first controller application and thesecond controller application (and perhaps additional controllerapplications, too).

In some embodiments, a single controller application may use one or moreattributes from a first set of playback device attributes and one ormore attributes from a second set of playback device attributes tocontrol an individual playback device or a group of playback devices. Insuch embodiments, the controller application selects a second attributebased at least in part on a first attribute. For example, in oneembodiment, the controller application selects a room name (and/orperhaps a zone name, area name, or other location designation) attributeassociated with a playback device based on a player name attributeassociated with the playback device in a manner similar to or the sameas described herein with respect to embodiments where the first andsecond sets attributes are used by corresponding first and secondcontroller applications, respectively. In another example, thecontroller application selects a room type attribute for a playbackdevice based on a room name attribute associated with the playbackdevice in a manner similar to or the same as described herein withrespect to embodiments where the first and second sets attributes areused by corresponding first and second controller applications,respectively.

In some embodiments involving multiple controller applications, thefirst controller application is a native controller application providedby a manufacturer of the playback device. For example if the playbackdevice is manufactured by Acme Corp., the first controller applicationis a controller application provided by Acme Corp. and configured to runon a computing device (e.g., as smart phone, tablet, desktop computer,smart watch, cloud computing system, or other computing system ordevice) for controlling the first playback device. And in someembodiments, the second controller application is a non-nativecontroller application that is not provided by the manufacturer of theplayback device. In some embodiments, the second controller applicationis a “smart home” or similar controller application.

Alternatively, in some embodiments, the second controller application isa native application provided by the manufacturer of the playbackdevice, and the first application is a non-native controller applicationthat is not provided by the manufacturer of the playback device (e.g., asmart home controller application or other type of controllerapplication). Alternatively, both the first controller application andthe second controller application are non-native applications, i.e.,where the playback device is manufactured by Acme Corp., but neither thefirst controller application nor the second controller application areprovided by Acme Corp.

In some embodiments, the first set of attributes used by the firstcontroller application to control the playback device may include, butis not limited to, one or more of (i) a name of the playback device(e.g., “John's Boom Box”, “Kitchen Speaker”, “Theater Amp”, and so on),(ii) a type of playback device (e.g., a sound bar, a subwoofer, asurround sound satellite speaker, a floor speaker, a bookshelf speaker,and so on), (iii) an icon or image (1014) representing the playbackdevice in the first controller application, (iv) a configuration of theplayback device (e.g., whether the playback device is a standaloneplayer, a left or right channel player, whether the playback device isgrouped with one or more additional playback devices and configured toplay media in synchrony with each other, and so on), (v) the name of theroom in which the playback device is located (e.g., Theater, LivingRoom, Basement, Bedroom, Office, John's Office, Jane's Bedroom, and soon), (vi) the type of room in which the playback device is located(e.g., a kitchen, a bedroom, a bathroom, a living room/den, and so on),(vii) a zone (904) that the playback device is associated with (e.g.,downstairs, basement, first floor, second floor, bedroom, and so on),(viii) an area where the playback device is located or other associatedwith (e.g., “kitchen,” atio,” “kitchen+patio,” and so on); and/or (ix) aplayback session (708) the playback device is associated with.

In some embodiments, the second set of attributes includes one or moreattributes that are similar to or the same as one or more attributes ofthe first set of attributes. For example, the second set of attributesmay include, but is not limited to, one or more of (i) a name of theplayback device (e.g., “John's Boom Box”, “Kitchen Speaker”, “TheaterAmp”, and so on), (ii) a type of playback device (e.g., a sound bar, asubwoofer, a surround sound satellite speaker, a floor speaker, abookshelf speaker, and so on), (iii) an icon or image (1014)representing the playback device in the first controller application,(iv) a configuration of the playback device (e.g., whether the playbackdevice is a standalone player, a left or right channel player, whetherthe playback device is grouped with one or more additional playbackdevices and configured to play media in synchrony with each other, andso on), (v) the name of the room in which the playback device is located(e.g., Theater, Living Room, Basement, Bedroom, Office, John's Office,Jane's Bedroom, and so on), (vi) the type of room in which the playbackdevice is located (e.g., a kitchen, a bedroom, a bathroom, a livingroom/den, and so on), (vii) a zone (904) that the playback device isassociated with (e.g., downstairs, basement, first floor, second floor,bedroom, and so on), (viii) an area where the playback device is locatedor other associated with (e.g., “kitchen,” patio,” “kitchen+patio,” andso on); and/or (ix) a playback session (708) the playback device isassociated with.

In some embodiments, the attributes of the first set of attributes aredifferent than the attributes of the second set of attributes. In someembodiments, at least some attributes of the first set of attributes arethe same as or similar to at least some attributes of the second set ofattributes, and at least some attributes of the first set of attributesare different than at least some attributes of the second set ofattributes.

In operation, the computing device, individually or in combination withone or more other computing devices, identifies the second set of deviceattributes for controlling the playback device. In some embodiments, thesecond set of attributes is used by a second controller application tocontrol the playback device. The computing device may be a controldevice (e.g., control device 300), a playback device (e.g., playbackdevice 200), a cloud computing system (not shown), or any othercomputing device now known or later developed.

In some embodiments, the computing device identifies the second set ofdevice attributes used by the second controller application by receivingthe second set of device attributes from the second controllerapplication. In some embodiments, the computing device identifies thesecond set of device attributes used by the second controllerapplication by accessing a cloud computing system and/or downloadingand/or other receiving the second set of device attributes from a cloudcomputing system. In still further embodiments, the computing deviceidentifies the second set of device attributes used by the secondcontroller application by accessing an application programming interface(API) or other computing program (or portion thereof) configured toallow one or both of the first or second controller applications tocontrol the playback devices and/or the media playback system comprisingthe playback devices. In still further embodiments, the computing deviceidentifies the second set of device attributes used by the secondcontroller application by accessing a database of attributes stored inmemory accessible by the first controller application.

In some embodiments, the first controller application and the secondcontroller application may be executed on the same computing device. Inother embodiments, the first controller application and the secondcontroller application may be executed on different computing devicesand/or by different computing systems.

In operation, after identifying the second set of device attributes usedby the second controller application to control the playback device, thecomputing device (individually or in combination with one or more othercomputing devices) selects a second device attribute for the playbackdevice from the second set of device attributes used by the secondcontroller application based at least in part on a first deviceattribute of the first set of device attributes used by the firstcontroller application.

In operation, in some embodiments, a “room type” (or other attribute) isselected from the second set of attributes used by the second controllerapplication based on one or more device attributes in the first set ofattributes. For example, the computing device may select a “room type”attribute from the second set of attributes based on one or moreattributes from the first set of attributes (e.g., the player name, theplayer type, the player icon, and so on).

For example, if the first set of attributes includes a player name with“bedroom” in it (e.g., the player name is “John's Bedroom”), then a“room type” of “bedroom” is selected from the second set of attributes.Similarly, if the first set of attributes includes a player name with“'s Room” (e.g., the player name is “Jane's Room”), then a “room type”of “bedroom” is selected from the second set of attributes. In anotherexample, if the first set of attributes includes a player iconassociated with a bedroom, then a “room type” of “bedroom” is selectedfrom the second set of attributes. In another example, if the first setof attributes includes a player type attribute of “play bar” or “soundbar”, then a “room type” of “media room” is selected from the second setof attributes. In yet another example, if the first set of attributesincludes a player configuration attribute of “5.1 Surround Sound” orsimilar, then a “room type” of “media room” is selected from the secondset of attributes.

Some embodiments may additionally or alternatively include selecting a“room name” attribute from the second set of attributes based on a “roomtype” attribute from the first set of attributes. For example, if thefirst set of attributes includes a room type attribute of “bedroom,”then a room attribute of “bedroom” is selected from the second set ofattributes. In another example, if the first set of attributes includesa player type attribute of “play bar,” then a room attribute of “mediaroom” is selected from the second set of attributes. Additional deviceattributes from the second set of device attributes could also beselected based on one or more of the device attributes in the first setof device attributes.

In some embodiments, after selecting a second device attribute(s) forthe playback device from the second set of device attributes used by thesecond controller application based at least in part on the first deviceattribute(s) of the first set of device attributes used by the firstcontroller application, the selected second device attribute(s) is/arestored (or perhaps caused to be stored) in the first set of deviceattributes used by the first controller application to control theplayback device.

In some embodiments, storing the selected second device attribute(s) (orcausing the selected second device attribute(s) to be stored) in thefirst set of device attributes used by the first controller applicationto control the playback device includes one or more of (i) storing theselected second device attribute(s) in the first set of deviceattributes stored on the computing device that is executing the firstcontroller application; (ii) storing the selected second deviceattribute(s) in the first set of device attributes stored in a cloudcomputing system; (iii) storing the selected second device attribute(s)in the first set of device attributes stored on a computing device thatis executing the second controller application; and/or (iv) storing theselected second device attribute(s) in the first set of deviceattributes stored on a computing device that is executing both the firstcontroller application and the second controller application.

In some embodiments, after causing the selected second device attributeto be stored in the first set of device attributes for the playbackdevice, at least one function of the playback device is controlled usingthe selected second device attribute.

In some embodiments, controlling at least one function of the playbackdevice using the selected second device attribute includes controllingat least one function of the playback device using the selected seconddevice attribute with the first controller application. In someembodiments, controlling at least one function of the playback deviceusing the selected second device attribute includes controlling at leastone function of the playback device using the selected second deviceattribute with the second controller application.

For example, in some embodiments, controlling at least one function ofthe playback device using the selected second device attribute includescontrolling the volume of the playback device via the native controllerapplication provided by the playback device manufacturer. In someembodiments, controlling at least one function of the playback deviceusing the selected second device attribute additionally or alternativelyincludes controlling the volume of the playback device via a controllerapplication that is not provided by the playback device manufacturer.

In one example, a bedroom has two playback devices configured as astereo pair of playback devices. The user has a computing device (e.g. asmart phone) running a first controller application (e.g., a nativecontroller application) for controlling the two playback devices. Theuser's computing device also runs a second controller application (e.g.,a smart home controller application) for controlling appliances, such aslights, air conditioning, and blinds, in addition to the playbackdevices. In operation, the first controller application identifies a setof room types from the second controller application (e.g., bedroom,kitchen, living room, dining room, and so on). And based on the names ofthe playback devices (e.g., “User's Room Left” and “User's Room Right”)in the first controller application, the first controller applicationinfers that the “room type” attribute for the second controllerapplication should be designated as “bedroom.”

Next, the “bedroom” designation from the second set of attributes isstored in the first set of attributes in the first controllerapplication. The first controller application may additionally oralternatively send the selected “bedroom” designation to the secondcontroller application where the selected “bedroom” designation isstored with other device attributes for use with controlling the firstand second playback devices. In some embodiments, the selected “bedroom”designation from the second set of attributes is stored in a cloudcomputing system where it can be accessed by one or both of the firstcontroller application and the second controller application.

After causing the selected second device attribute to be stored in thefirst set of device attributes for the playback device, either (or both)the first or second controller applications can control at least onefunction of the first or second playback devices in the user's roomusing the selected “bedroom” designation. For example, the firstcontroller application may receive a command to play a song on allplayback devices “in the bedroom.” Similarly the second controllerapplication may receive a command to launch a “bedtime scene” thatincludes (i) setting the lights in the bedroom to a low level, (ii)closing the shades in the bedroom, and (iii) playing music from aplaylist of relaxing music via the first and second playback devices inthe bedroom.

FIG. 14 shows a method 1400 of controlling a playback device in a mediaplayback system according to some embodiments.

Method 1400 begins at block 1402, which includes, in a media playbacksystem comprising one or more playback devices, wherein a playbackdevice of the media playback system has a corresponding first set ofdevice attributes used by a first controller application to control theplayback device, identifying a second set of device attributesassociated with the playback device. In some embodiments, the second setof device attributes are used by a second controller application tocontrol the playback device.

In some embodiments, identifying a second set of device attributescomprises: (i) receiving the second set of device attributes from one ormore of (a) second controller application, (b) a cloud computing system,(c) an application programming interface, and/or (d) a database ofdevice attributes; and (ii) storing the second set of device attributesto control the playback device. In some embodiments, identifying asecond set of device attributes used by a second controller applicationto control the playback device comprises: (i) receiving the second setof device attributes from the second controller application; and (ii)storing the second set of device attributes used by the secondcontroller application to control the playback device.

Next, method 1400 advances to block 1404, which includes selecting asecond device attribute for the playback device from the second set ofdevice attributes used by the second controller application based atleast in part on a first device attribute of the first set of deviceattributes used by the first controller application.

In some embodiments, the first device attribute comprises one of aplayer name, a player type, a player icon, a player configuration, azone name for a zone associated with the playback device, and a sessionname for a session associated with the playback device, and the secondset of device attributes comprises one or more of a set of room typeidentifiers and a set of room identifiers. In such embodiments,selecting a second device attribute based at least in part on the firstdevice attribute comprises selecting at least one of a room typeidentifier from the set of room type identifiers or a room identifierfrom the set of room identifiers based at least in part on one or moreof the player name, the player type, the player icon, the playerconfiguration, the zone name for a zone associated with the playbackdevice, and the session name for a session associated with the playbackdevice. The first and second sets of device attributes could includefewer, additional, and/or different attributes than the ones listedabove.

For example, in some embodiments, the first device attribute comprises aplayer name and the second set of device attributes comprises a set ofroom type identifiers. In such embodiments, selecting a second deviceattribute based at least in part on the first device attribute in block1404 comprises selecting a room type identifier from the set of roomtype identifiers based at least in part on the player name.

In another example, in some embodiments, the first device attributecomprises a player name and the second set of device attributescomprises a set of room type identifiers. In such embodiments, selectinga second device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room type identifier from the set of room type identifiersbased at least in part on the player name.

In yet another example, in some embodiments, the first device attributecomprises a player type and the second set of device attributescomprises a set of room type identifiers. In such embodiments, selectinga second device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room type identifier from the set of room type identifiersbased at least in part on the player type.

In a further example, in some embodiments, the first device attributecomprises a player icon and the second set of device attributescomprises a set of room type identifiers. In such embodiments, selectinga second device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room type identifier from the set of room type identifiersbased at least in part on the player icon.

In yet a further example, in some embodiments, the first deviceattribute comprises a player configuration and the second set of deviceattributes comprises a set of room type identifiers. In suchembodiments, selecting a second device attribute based at least in parton the first device attribute in block 1404 additionally oralternatively comprises selecting a room type identifier from the set ofroom type identifiers based at least in part on the playerconfiguration.

In another example, in some embodiments, the first device attributecomprises a zone name for a zone associated with the playback device (orperhaps a zone in which the playback device is located or is a memberof) and the second set of device attributes comprises a set of room typeidentifiers. In such embodiments, selecting a second device attributebased at least in part on the first device attribute in block 1404additionally or alternatively comprises selecting a room type identifierfrom the set of room type identifiers based at least in part on the zonename.

In yet another example, in some embodiments, the first device attributecomprises a session name for a session associated with the playbackdevice and the second set of device attributes comprises a set of roomtype identifiers. In such embodiments, selecting a second deviceattribute based at least in part on the first device attribute in block1404 additionally or alternatively comprises selecting a room typeidentifier from the set of room type identifiers based at least in parton the session name.

In still another example, in some embodiments, the first deviceattribute comprises a room type and the second set of device attributesadditionally or alternatively comprises a set of room identifiers. Insuch embodiments, selecting a second device attribute based at least inpart on the first device attribute in block 1404 additionally oralternatively comprises selecting a room identifier from the set of roomidentifiers based at least in part on the room type.

In a further example, in some embodiments, the first device attributecomprises a player name and the second set of device attributescomprises a set of room identifiers. In such embodiments, selecting asecond device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room identifier from the set of room identifiers based atleast in part on the player name.

In another example, in some embodiments, the first device attributecomprises a player type and the second set of device attributescomprises a set of room identifiers. In such embodiments, selecting asecond device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room identifier from the set of room identifiers based atleast in part on the player type.

In another example, in some embodiments, the first device attributecomprises a player icon and the second set of device attributescomprises a set of room identifiers. In such embodiments, selecting asecond device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room identifier from the set of room identifiers based atleast in part on the player icon.

In a further example, in some embodiments, the first device attributecomprises a player configuration and the second set of device attributescomprises a set of room identifiers. In such embodiments, selecting asecond device attribute based at least in part on the first deviceattribute in block 1404 additionally or alternatively comprisesselecting a room identifier from the set of room identifiers based atleast in part on the player configuration.

Next, method 1400 advances to block 1406, which includes causing theselected second device attribute to be stored in the first set of deviceattributes used by the first controller application to control theplayback device. In some embodiments, causing the selected second deviceattribute to be stored in the first set of device attributes used by thefirst controller application to control the playback device comprisesthe computing device writing the selected second device attribute to afile stored on the playback device. In some embodiments, causing theselected second device attribute to be stored in the first set of deviceattributes used by the first controller application to control theplayback device additionally or alternatively comprises the computingdevice writing the selected second device attribute to a file stored onthe computing device and perhaps one or more additional computingdevices. In some embodiments, causing the selected second deviceattribute to be stored in the first set of device attributes used by thefirst controller application to control the playback device additionallyor alternatively comprises the computing device sending the selectedsecond device attribute to a cloud server for storage in a cloudcomputing system.

Next, method 1400 advances to block 1408, which includes after causingthe selected second device attribute to be stored in the first set ofdevice attributes for the playback device, controlling at least onefunction of the playback device using the selected second deviceattribute.

In some embodiments, the first controller application is a controllerapplication provided by a manufacturer of the media playback systemcomprising one or more playback devices, and the second controllerapplication is a controller application that is not provided by themanufacturer of the media playback system comprising one or moreplayback devices. In some embodiments, controlling at least one functionof the playback device using the selected second device attributecomprises controlling at least one function of the playback device usingthe selected second device attribute with the first controllerapplication. In some embodiments, controlling at least one function ofthe playback device using the selected second device attribute comprisesadditionally or alternatively controlling at least one function of theplayback device using the selected second device attribute with thesecond controller application.

In some embodiments, method 1400 additionally comprises: (i) identifyinga third set of device attributes used by a third controller applicationto control the playback device; (ii) selecting a third device attributefor the playback device from the third set of device attributes used bythe third controller application based at least in part on a firstdevice attribute of the first set of device attributes used by the firstcontroller application; (iii) causing the selected third deviceattribute to be stored in the first set of device attributes used by thefirst controller application to control the playback device; and (iv)after causing the selected second device attribute to be stored in thefirst set of device attributes for the playback device, controlling atleast one function of the playback device using the selected thirddevice attribute with one or more of the first controller application,the second controller application, or the third controller application.

In such embodiments, the first controller application is a controllerapplication provided by a manufacturer of the media playback systemcomprising one or more playback devices, and the second controllerapplication and third controller application are controller applicationsnot provided by the manufacturer of the media playback system comprisingone or more playback devices.

VI. Conclusion

The description above discloses, among other things, various examplesystems, methods, apparatus, and articles of manufacture including,among other components, firmware and/or software executed on hardware.It is understood that such examples are merely illustrative and shouldnot be considered as limiting. For example, it is contemplated that anyor all of the firmware, hardware, and/or software aspects or componentscan be embodied exclusively in hardware, exclusively in software,exclusively in firmware, or in any combination of hardware, software,and/or firmware. Accordingly, the examples provided are not the onlyway(s) to implement such systems, methods, apparatus, and/or articles ofmanufacture. The description above discloses, among other things,various example systems, methods, apparatus, and articles of manufactureincluding, among other components, firmware and/or software executed onhardware. It is understood that such examples are merely illustrativeand should not be considered as limiting. For example, it iscontemplated that any or all of the firmware, hardware, and/or softwareaspects or components can be embodied exclusively in hardware,exclusively in software, exclusively in firmware, or in any combinationof hardware, software, and/or firmware. Accordingly, the examplesprovided are not the only way(s) to implement such systems, methods,apparatus, and/or articles of manufacture.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of aninvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible,non-transitory medium such as a memory, DVD, CD, Blu-ray, and so on,storing the software and/or firmware.

What is claimed is:
 1. Tangible, non-transitory computer-readable media comprising instructions stored therein, wherein the instructions, when executed by one or more processors, cause a computing device to perform a method comprising: in a media playback system comprising one or more playback devices, wherein a playback device of the media playback system has a corresponding first set of device attributes used by a first controller application to identify and control the playback device, identifying a second set of device attributes used by a second controller application to identify and control the playback device; selecting a second device attribute for the playback device from the second set of device attributes used by the second controller application based at least in part on a first device attribute of the first set of device attributes used by the first controller application, wherein the second set of device attributes comprises a set of room type identifiers, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting a room type identifier from the set of room type identifiers; causing the selected second device attribute to be stored in the first set of device attributes used by the first controller application to control the playback device; and after causing the selected second device attribute to be stored in the first set of device attributes for the playback device, controlling at least one function of the playback device using the selected second device attribute.
 2. The tangible, non-transitory computer-readable media of claim 1, wherein controlling at least one function of the playback device using the selected second device attribute comprises controlling at least one function of the playback device using the selected second device attribute with the first controller application.
 3. The tangible, non-transitory computer-readable media of claim 1, wherein controlling at least one function of the playback device using the selected second device attribute comprises controlling at least one function of the playback device using the selected second device attribute with the second controller application.
 4. The tangible, non-transitory computer-readable media of claim 1, wherein identifying a second set of device attributes used by a second controller application to control the playback device comprises: receiving the second set of device attributes from one or more of the second controller application, a cloud computing system, and/or an application programming interface; and storing the second set of device attributes used by the second controller application to control the playback device.
 5. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a player name, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the player name.
 6. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a player type, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the player type.
 7. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a player icon, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the player icon.
 8. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a player configuration, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the player configuration.
 9. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a zone name for a zone associated with the playback device, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the zone name.
 10. The tangible, non-transitory computer-readable media of claim 1, wherein the first device attribute comprises a session name for a session associated with the playback device, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room type identifier from the set of room type identifiers based at least in part on the session name.
 11. The tangible, non-transitory computer-readable media of claim 1, wherein causing the selected second device attribute to be stored in the first set of device attributes used by the first controller application to control the playback device comprises the computing device writing the selected second device attribute to one or more files stored on one or more of the playback device or a cloud computing system server.
 12. The tangible, non-transitory computer-readable media of claim 1, further comprising: displaying, via a graphical user interface, one or more attributes from the first set of device attributes or the second set of device attributes in a user interface menu; receiving, via the graphical user interface, a selection of one of the displayed device attributes associated with the playback device; and sending a command to the playback device based at least in part on the received selection of the one of the displayed device attributes associated with the playback device.
 13. The tangible, non-transitory computer-readable media of claim 1, wherein the method further comprises: identifying a third set of device attributes used by a third controller application to control the playback device; selecting a third device attribute for the playback device from the third set of device attributes used by the third controller application based at least in part on a first device attribute of the first set of device attributes used by the first controller application; causing the selected third device attribute to be stored in the first set of device attributes used by the first controller application to control the playback device; and after causing the selected second device attribute to be stored in the first set of device attributes for the playback device, controlling at least one function of the playback device using the selected third device attribute with one or more of the first controller application, the second controller application, or the third controller application.
 14. A method comprising: in a media playback system comprising one or more playback devices, wherein a playback device of the media playback system has a corresponding first set of device attributes used by a first controller application to identify and control the playback device, identifying a second set of device attributes used by a second controller application to identify and control the playback device; selecting a second device attribute for the playback device from the second set of device attributes used by the second controller application based at least in part on a first device attribute of the first set of device attributes used by the first controller application, wherein the second set of device attributes comprises one of: (a) a set of room type identifiers or (b) a set of room identifiers, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting one of: (a) a room type identifier from the set of room type identifiers or (b) a room identifier from the set of room identifiers; causing the selected second device attribute to be stored in the first set of device attributes used by the first controller application to control the playback device; and after causing the selected second device attribute to be stored in the first set of device attributes for the playback device, controlling at least one function of the playback device using the selected second device attribute by at least one of the first controller application or the second controller application.
 15. The method of claim 14, wherein the first device attribute comprises one of a player name, a player type, a player icon, a player configuration, a zone name for a zone associated with the playback device, and a session name for a session associated with the playback device, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting at least one room type identifier from the set of room type identifiers or room identifier from the set of room identifiers based at least in part on one or more of the player name, the player type, the player icon, the player configuration, the zone name for a zone associated with the playback device, and the session name for a session associated with the playback device.
 16. Tangible, non-transitory computer-readable media comprising instructions stored therein, wherein the instructions, when executed by one or more processors, cause a computing device to perform a method comprising: in a media playback system comprising one or more playback devices, wherein a playback device of the media playback system has a corresponding first set of device attributes used by a first controller application to identify and control the playback device, identifying a second set of device attributes used by a second controller application to identify and control the playback device; selecting a second device attribute for the playback device from the second set of device attributes used by the second controller application based at least in part on a first device attribute of the first set of device attributes used by the first controller application, wherein the second set of device attributes comprises a set of room identifiers, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting a room identifier from the set of room identifiers; causing the selected second device attribute to be stored in the first set of device attributes used by the first controller application to control the playback device; and after causing the selected second device attribute to be stored in the first set of device attributes for the playback device, controlling at least one function of the playback device using the selected second device attribute.
 17. The tangible, non-transitory computer-readable media of claim 16, wherein the first device attribute comprises a room type, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room identifier from the set of room identifiers based at least in part on the room type.
 18. The tangible, non-transitory computer-readable media of claim 16, wherein the first device attribute comprises a player name, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room identifier from the set of room identifiers based at least in part on the player name.
 19. The tangible, non-transitory computer-readable media of claim 16, wherein the first device attribute comprises a player type, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room identifier from the set of room identifiers based at least in part on the player type.
 20. The tangible, non-transitory computer-readable media of claim 16, wherein the first device attribute comprises a player icon, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room identifier from the set of room identifiers based at least in part on the player icon.
 21. The tangible, non-transitory computer-readable media of claim 16, wherein the first device attribute comprises a player configuration, and wherein selecting the second device attribute based at least in part on the first device attribute comprises selecting the room identifier from the set of room identifiers based at least in part on the player configuration. 